home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / cppmatrx / matrix.h < prev    next >
C/C++ Source or Header  |  1991-02-02  |  2KB  |  43 lines

  1.  
  2. typedef double matrix_t;
  3.  
  4.  
  5. class matrix {
  6.       matrix_t *matrix_data;
  7.       size_t matrix_size;
  8.  
  9.       public:
  10.          matrix (size_t matrix_length, ...);
  11.          matrix (char *dummy, size_t matrix_length,matrix_t fill_value=0.0);
  12.          matrix (matrix &m);
  13.          ~matrix (void) { delete matrix_data; }
  14.  
  15.          matrix_t get_elem (size_t row, size_t column) { return *(matrix_data + (row-1)*matrix_size + (column-1)); }
  16.          matrix_t put_elem (size_t row, size_t column, matrix_t elem) { return (*(matrix_data + (row-1)*matrix_size + (column-1)) = elem); }
  17.  
  18.          matrix_t* operator[] (size_t row) { return matrix_data + row*matrix_size; }
  19.          matrix_t& operator() (size_t row, size_t column) { return *(matrix_data + (row-1)*matrix_size + (column-1)); }
  20.          matrix operator= (matrix &m);
  21.          size_t get_matrix_size (void) { return matrix_size; }
  22.          int operator== (matrix m);
  23.          int operator!= (matrix m);
  24.          matrix operator+ (matrix m);
  25.          matrix operator- (matrix m);
  26.          matrix operator- (void);
  27.          friend matrix_t det (matrix m);
  28.          friend matrix_t cofactor (matrix m, size_t m_row, size_t m_column);
  29.          friend matrix minor (matrix m, size_t m_row, size_t m_column);
  30.          friend void transpose (matrix &m);
  31.          friend matrix operator* (matrix m, double r);
  32.          friend matrix operator* (double r, matrix m);
  33.          friend matrix operator* (matrix m, int r);
  34.          friend matrix operator* (int r, matrix m);
  35.          friend ostream& operator<< (ostream &s, matrix m);
  36.          friend istream& operator>> (istream &s, matrix &m);
  37.          matrix operator* (matrix m);
  38.  
  39.          void print_matrix (void);
  40.    };
  41.  
  42. void matrix_error (char *message);
  43.